// import com.alibaba.druid.sql.ast.SQLName*;
// import com.alibaba.druid.sql.ast.statement.SQLAlterTableItem;
// import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition*;
// import com.alibaba.druid.sql.dialect.mysql.ast.MySqlObjectImpl;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;

#include "MySqlAlterTableModifyColumn.h"
#include "../../../../../sql/dialect/mysql/visitor/MySqlASTVisitor.h"
#include "../../../../../sql/ast/statement/SQLColumnDefinition.h"
#include "../../../../../sql/ast/SQLName.h"

// @Override
void MySqlAlterTableModifyColumn::accept0(MySqlASTVisitor_ptr visitor)
{
  if (visitor->visit(SharedObject(MySqlAlterTableModifyColumn)))
  {
    acceptChild(visitor, newColumnDefinition);

    acceptChild(visitor, firstColumn);
    acceptChild(visitor, afterColumn);
  }
}

SQLName_ptr MySqlAlterTableModifyColumn::getFirstColumn()
{
  return firstColumn;
}

void MySqlAlterTableModifyColumn::setFirstColumn(SQLName_ptr firstColumn)
{
  this->firstColumn = firstColumn;
}

SQLName_ptr MySqlAlterTableModifyColumn::getAfterColumn()
{
  return afterColumn;
}

void MySqlAlterTableModifyColumn::setAfterColumn(SQLName_ptr afterColumn)
{
  this->afterColumn = afterColumn;
}

SQLColumnDefinition_ptr MySqlAlterTableModifyColumn::getNewColumnDefinition()
{
  return newColumnDefinition;
}

void MySqlAlterTableModifyColumn::setNewColumnDefinition(SQLColumnDefinition_ptr newColumnDefinition)
{
  this->newColumnDefinition = newColumnDefinition;
}

BOOL_ptr MySqlAlterTableModifyColumn::isFirst()
{
  return first;
}

void MySqlAlterTableModifyColumn::setFirst(BOOL_ptr first)
{
  this->first = first;
}
